Framework for Automated Code Smell Correction in a BrownVeld Context
نویسنده
چکیده
Developing code over a long period of time, in a heterogeneous team or under time pressure can lead to a lingering decay in readability, maintainability and thus reusability of software source code. In the past decades several approaches have been developed that tackle automatic detection of such code Waws, yet neglecting the automated correction as an essential and integrated step in the refactoring workWow. Developers rather had to refactor identiVed code Waws manually which is often a time-consuming and, consequently, cost-intensive task that doomed refactoring to be marginalized in production cycles. In this diploma thesis we argue that detection and correction of code Waws should be treated as inseparable tasks to annihilate parts of code that “do not feel right”. By reusing previous research conclusions made by the detection community and amalgamating it with recent achievements in the Veld of automated correction, we are able to present a holistic framework— Smeagol—that supports the continuous improvement of code. The contribution of this diploma thesis is as follows: First, we give an overview about the current state of the art in detection and correction and argumentatively deduce and discuss the need for a framework that assists developers in both steps, as both research Velds are investigated as separate topics up till now. Based on our argumentation, we will describe how a holistic framework can be designed and will describe our choices in detail by elaborating on the concrete implementation and techniques used for identifying and correcting code Waws. By giving workWow examples of how to extend our framework to detect and correct poor code, we show the practical usability and extendability of our tool. We Vnally compare our framework to competing approaches, point out diUerences and similarities and draw an overall conclusion of the presented work.
منابع مشابه
Multi-step Automated Refactoring for Code Smell
In computer programming, code smell may origin of latent problems in source code. Detecting and resolving bad smells remain time intense for software engineers despite proposals on bad smell detecting and refactoring tools. Numerous code smells have been recognized yet the sequence in which the detection and resolution of different kinds of code smells are performed because software engineers d...
متن کاملIdentifying Refactoring Opportunities Using Logic Meta Programming
In this paper, we show how automated support can be provided for identifying refactoring opportunities, e.g., when an application’s design should be refactored and which refactoring(s) in particular should be applied. Such support is achieved by using the technique of logic meta programming to detect so-called bad smells and by defining a framework that uses this information to propose adequate...
متن کاملAutomation of Refactoring and Refactoring Suggestions for TTCN-3 Test Suites. The TRex TTCN-3 Refactoring and Metrics Tool
Refactoring is not only useful for source code of implementations, but as well for test specifications. The open source TRex tool automates the application of refactorings and the detection of refactoring opportunities for test suites that are specified using the standardised Testing and Test Control Notation (TTCN-3). Depending on the refactoring, the behaviour preserving transformations may i...
متن کاملEnabling Refactoring with HTN Planning to Improve the Design Smells Correction Activity
Refactorings are a key technique to software evolution. They can be used to improve the structure and quality of a software system. This paper introduces a proposal for generating refactoring plans with hierarchical task network planning, to improve the automation of the bad smells correction activity.
متن کاملAn Empirical Study of Bad Smell in Code on Maintenance Effort
In this paper, we represent an automated code smell detection and refactoring tool for calculating risk factor by detecting Code Smells and decrease risk factor by Refactoring Techniques. Refactoring is a process for restructuring or improving internal structure of software without changing its behavior. A new code smell (Lazy Catch) detection is also presented. To achieve this aim Declarative ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012